package cn.good.yan.pojo;

import cn.good.yan.conf.enumc.SexEnum;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.ToString;

import java.io.Serializable;
import java.util.Date;

/**
 *  Bill 实体
 * @author shengren.yan
 * @create 2022-09-04
 */
@ToString
@Data
@TableName(value ="bill")
public class Bill implements Serializable {

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    /**
     * bid
     */
    // 注解id value：数据库中的主键  type： AUTO 主键自增、ASSIGN_ID 雪花算法、ASSIGN_UUID UUId
    // @TableId(value = "bid",type = IdType.AUTO)  主键生产策略，可在yml统一配置
    @TableId(type = IdType.AUTO)
    private Long bid;

    // 如果为null，字段也更新为null
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String billCode;

    private String billName;

    private String billCom;

    private Integer billNum;

    private Double money;

    /**
     * 是否付款 0 未付款， 1已付款  - 通用枚举  SexEnum , 如开启枚举，需要配置文件进行配置
     */
//    private SexEnum pay;
    private Integer pay;

    /**
     * 供应商id
     */
    private Integer pid;

    /**
     * create_date
     */
//    @TableField(fill = FieldFill.INSERT)        // 新增的时候填充数据
//    @TableField(fill = FieldFill.INSERT_UPDATE) // 新增或修改的时候填充数据
    private Date createDate;

    /**
     * 乐观锁 - 版本 （标识乐观锁版本号字段）
     */
    @Version
    private Integer version;

    public Bill() {}

    public Bill(String billCode, String billName) {
        this.billCode = billCode;
        this.billName = billName;
    }

    /**
     * 逻辑删除  value 1：未删除的值  、delval 0 ：删除后的值
     */
//    @TableLogic(value = "1", delval = "0")
//    private Integer isShow;

}
